import { request } from '@/utils/request';
import type {
  AuthenticationDetailResult,
  AuthenticationListResult,
  AuthenticationRequest,
  BreedingStatsResult,
} from './model/authenticationModel';
import type { BaseResponse } from './model/baseResponse';

const Api = {
  list: 'authentication/list',
  update: 'authentication/status',
  detail: 'authentication',
  getIdCard: 'authentication/idCard',
  stats: 'authentication/statistic', // 繁育统计接口
};

/**
 * 获取认证申请列表
 * @param params 查询参数
 * @returns 认证申请列表
 */
export function getAuthenticationList(params: AuthenticationRequest) {
  return request.post<AuthenticationListResult>({
    url: Api.list,
    params,
  });
}

/**
 * 更新认证申请
 * @param data 认证申请数据
 * @returns 认证申请详情
 */
export function updateAuthentication(data: AuthenticationRequest) {
  return request.put<AuthenticationDetailResult>({
    url: Api.update,
    data,
  });
}

/**
 * 获取认证申请详情
 * @param id 认证申请ID
 * @returns 认证申请详情
 */
export function getAuthenticationDetail(id: number) {
  return request.get<AuthenticationDetailResult>({
    url: Api.detail + '/' + id,
  });
}

/**
 * 获取明文身份证号
 * @param id 身份证号
 * @returns 明文身份证号
 */
export function getIdCard(id: number) {
  return request.get<BaseResponse<{ data: string }>>({
    url: Api.getIdCard + '/' + id,
  });
}

/**
 * 获取繁育统计数据
 * @returns 繁育统计数据
 */
export function getBreedingStats() {
  return request.get<BreedingStatsResult>({
    url: Api.stats,
  });
}
